Object-Based Adaptive Load Balancing for MPI Programs∗
نویسندگان
چکیده
Parallel Computational Science and Engineering (CSE) applications often exhibit irregular structure and dynamic load patterns. Many such applications have been developed using procedural languages (e.g. Fortran) in message passing parallel programming paradigm (e.g. MPI) for distributed memory machines. Incorporating dynamic load balancing techniques at the application-level involves significant changes to the design and structure of applications. On the other hand, traditional run-time systems for MPI do not support dynamic load balancing. Object-based parallel programming languages, such as Charm++ support efficient dynamic load balancing using object migration for irregular and dynamic applications, as well as to deal with external factors that cause load imbalance. However, converting legacy MPI applications to such object-based paradigms is cumbersome. This paper describes an implementation of MPI, called Adaptive MPI (AMPI) that supports dynamic load balancing and multithreading for MPI applications. Our approach and implementation is based on the user-level migrating threads and load balancing capabilities provided by the Charm++ framework. Conversion from legacy codes to this platform is straightforward even for large legacy codes. We have converted the component codes ROCFLO and ROCSOLID of a Rocket Simulation application to AMPI. Our experience shows that with a minimal overhead and effort, one can incorporate dynamic load balancing capabilities in legacy Fortran-MPI codes.
منابع مشابه
Adaptive Load Balancing for MPI Programs
Parallel Computational Science and Engineering (CSE) applications often exhibit irregular structure and dynamic load patterns. Many such applications have been developed using MPI. Incorporating dynamic load balancing techniques at the application-level involves significant changes to the design and structure of applications. On the other hand, traditional run-time systems for MPI do not suppor...
متن کاملDynamic Load-Balancing for Data-Parallel MPI Programs
|This paper describes the load-balancing support available in DParLib, a library of MPI-based routines that support the data-parallel style of programming in MPI. The basic structure of DParLib is described with a focus on the parts of the library needed to support the distribution and redistribution of arrays.
متن کاملHector : User – Transparent Resource Allocation for MPI
– Hector, a complete job scheduling and parallel run–time environment, is intended to present many features both to parallel and sequential jobs, including dynamic load balancing, checkpointing, near–real–time resource awareness, and transparency to the programmer/user. This describes some recent work on user–transparent enhancements to support load balancing, near–real–time resource awareness,...
متن کاملRun-Time Support for Adaptive Load Balancing
Many parallel scienti c applications have dynamic and irregular computational structure. However, most such applications exhibit persistence of computational load and communication structure. This allows us to embed measurement-based automatic load balancing framework in run-time systems of parallel languages that are used to build such applications. In this paper, we describe such a framework ...
متن کاملVisualizing, measuring, and tuning Adaptive MPI parameters
Adaptive MPI (AMPI) is an advanced MPI runtime environment that offers several features over traditional MPI runtimes, which can lead to a better utilization of the underlying hardware platform and therefore higher performance. These features are overdecomposition through virtualization, and load balancing via rank migration. Choosing which of these features to use, and finding the optimal para...
متن کامل